import java.util.Stack;

public class Main {
    public static void main(String[] args) {

    }


    //递归方式逆序打印链表
    void printList(ListNode head){
        if(null != head){
            printList(head.next);
            System.out.print(head.val + " ");
        }
    }


    // 循环方式
    void printList2(ListNode head){
        if(null == head){
            return;
        }
        Stack<ListNode> s = new Stack<>();
// 将链表中的结点保存在栈中
        ListNode cur = head;
        while(null != cur){
            s.push(cur);
            cur = cur.next;
        }
// 将栈中的元素出栈
        while(!s.empty()){
            System.out.print(s.pop().val + " ");
        }
    }
}